/**
 * 用户服务接口 - 多租户用户管理的核心业务接口
 *
 * 开发人员：马勇俐
 * 开发时间：2025-11-16 至 2025-11-20
 * 模块职责：定义多租户用户的完整管理接口，支持用户创建、查询、更新、删除等功能
 *
 * 技术要点：
 * - 多租户用户数据隔离和管理
 * - 用户状态和权限管理机制
 * - 用户信息验证和安全处理
 * - 企业内用户列表和查询功能
 * - 用户账户安全和数据保护
 *
 * 开发故事：负责用户服务接口的设计和定义，与用户控制器和前端用户界面深度配合，为企业提供安全的用户管理服务。
 */
package com.pbl.service;

import com.pbl.entity.User;

import java.util.List;

public interface UserService {
    /**
     * 在指定企业内创建用户
     * @param enterpriseId 企业ID
     * @param u 用户对象
     * @return 创建的用户对象
     */
    User create(Long enterpriseId, User u);

    /**
     * 更新用户信息
     * @param id 用户ID
     * @param u 用户对象（包含更新信息）
     * @return 更新后的用户对象
     */
    User update(Long id, User u);

    /**
     * 获取用户详情
     * @param id 用户ID
     * @return 用户对象
     */
    User get(Long id);

    /**
     * 删除用户（软删除）
     * @param id 用户ID
     */
    void delete(Long id);

    /**
     * 获取企业内所有用户列表
     * @param enterpriseId 企业ID
     * @return 用户列表
     */
    List<User> listByEnterprise(Long enterpriseId);
}
